﻿using System;
//
namespace PerceptiveMCAPI.Types
{
   public class listAbuseReportsParms
   {
      /// <summary>
      /// a valid API Key for your user account
      /// </summary>
      public string apikey { get; set; }
      /// <summary>
      /// the list id to pull abuse reports for
      /// </summary>
      public string id { get; set; }
      /// <summary>
      /// optional - the page number to start at - defaults to 1st page of data (page 0)
      /// </summary>
      public int start { get; set; }
      /// <summary>
      /// optional - the number of results to return - defaults to 500, upper limit set at 1000
      /// </summary>
      public int limit { get; set; }
      /// <summary>
      /// optional - pull only messages since this time - Time in UTC
      /// </summary>
      public DateTime since { get; set; }
      // -----------------------------------------------------------

      public listAbuseReportsParms()
      {
         this.apikey = MCAPISettings.default_apikey;
         this.start = MCAPISettings.default_start;
         this.limit = MCAPISettings.default_limit_listAbuseReports;
         this.since = DateTime.MinValue;
      }
      public listAbuseReportsParms( string id, DateTime since )
      {
         this.apikey = MCAPISettings.default_apikey;
         this.id = id;
         this.start = MCAPISettings.default_start;
         this.limit = MCAPISettings.default_limit_listAbuseReports;
         this.since = since;
      }
      public listAbuseReportsParms( string id, int start, int limit )
      {
         this.apikey = MCAPISettings.default_apikey;
         this.id = id;
         this.start = start;
         this.limit = limit;
         this.since = DateTime.MinValue;
      }
      public listAbuseReportsParms( string id, int start, int limit, DateTime since )
      {
         this.apikey = MCAPISettings.default_apikey;
         this.id = id;
         this.start = start;
         this.limit = limit;
         this.since = since;
      }
      public listAbuseReportsParms( string apikey, string id, DateTime since )
      {
         this.apikey = apikey;
         this.id = id;
         this.start = MCAPISettings.default_start;
         this.limit = MCAPISettings.default_limit_listAbuseReports;
         this.since = since;
      }
      public listAbuseReportsParms( string apikey, string id, int start, int limit )
      {
         this.apikey = apikey;
         this.id = id;
         this.start = start;
         this.limit = limit;
         this.since = DateTime.MinValue;
      }
      public listAbuseReportsParms( string apikey, string id, int start, int limit, DateTime since )
      {
         this.apikey = apikey;
         this.id = id;
         this.start = start;
         this.limit = limit;
         this.since = since;
      }
   }
}
